package com.lam.common.components.easyexcel.export.iterator;

import java.util.List;

public interface DataIterator<T> {
	
	/**
	 * 准备数据
	 */
	void prepareData();
	
	/**
	 * 是否还有下一批数据
	 * @return
	 */
	boolean hasNext();
	
	/**
	 * 下一批数据集
	 * @return
	 */
	List<T> nextBatchData();
	
	/**
	 * 全部的记录数量
	 * @return
	 */
	long totalCount();
	
	/**
	 * 导出的文件数量
	 * @return
	 */
	int fileCount();
	
	/**
	 * 文件编号，从1开始，当写操作需要变更文件时，fileNo会变，正常情况下是+1操作，当有其他需求时可以自由定制
	 * @return
	 */
	int getFileNo();
	
	
	/** 每个文件的最大行数 
	 * @return
	 */
	int getFileMaxRowCount();
	

}
